//
// Description: 143. 最大异或对
// Created by Loading on 2022/7/16.
//

#include <bits/stdc++.h>

using namespace std;

constexpr int N = 1e5 + 10, M = 31 * N;

// 每个节点的孩子数组
int son[M][2], idx;

// 将 x 插入 Trie 数组
void insert(int x) {
    int p = 0;
    for (int i = 30; i >= 0; --i) {
        int u = x >> i & 1;
        if (!son[p][u]) {
            son[p][u] = ++idx;
        }
        p = son[p][u];
    }
}

// 查询与 x 的最大异或值
int query(int x) {
    int res = 0;
    int p = 0;
    for (int i = 30; i >= 0; --i) {
        int u = x >> i & 1;
        // 最大异或值，优先去相反的方向寻找
        if (son[p][!u]) {
            p = son[p][!u];
            res = res * 2 + !u;
        } else {
            p = son[p][u];
            res = res * 2 + u;
        }
    }

    return res;
}

int main() {
    int n;
    cin >> n;

    int res = 0;
    for (int i = 0; i < n; ++i) {
        int x;
        cin >> x;
        insert(x);
        res = max(res, x ^ query(x));
    }

    cout << res << endl;

    return 0;
}
